Digital imaging systems, such as scanners, digital cameras, and digital film processing systems, have been developed to create digital representations of images or scenes. Typically, the image or scene is represented as an array of pixels, each pixel being assigned one or more numerical values which describe the color of the part of the image or scene which the pixel represents.
For a scanner, the image which is scanned may reside on any of a variety of media, including photographs, documents, slides, and film. Typically, the digital encoding process used by a scanner involves illuminating the image with a light source and recording the type and/or amount of reflected or transmitted light.
As an example, a negative image on film can be scanned by transmitting a beam of white light through the film. In the case of color film, the light passing through the film is attenuated by individual dye layers. For each pixel, the transmitted light is passed through red, green, and blue filters, so as to describe the pixel in terms of its red, green, and blue characteristics. Such an RGB coding system is referred to as a direct coding system, because each of the R, G, and B components (the color code values) for a pixel directly represents the respective R, G, or B component of the overall color for the pixel. Similar scanning methods using R, G, and B filters can be used for scanning of paper images and photographs, except that reflected light, rather than transmitted light, is recorded by the filters.
In addition to direct coding systems, indirect coding systems, such as those utilized in digital film processing, have also been developed. Color film generally comprises three layers of light sensitive material that are separately sensitive to red, green, and blue light. During development, a light source is directed to the front of the film, and a light source is directed to the back of the film. Grains of elemental silver developing in the top layer (e.g., the blue sensitive layer) are visible from the front of the film by light reflected from the front source; however, these grains are hidden from the back of the film. Similarly, grains of elemental silver developing in the bottom layer (e.g., the red sensitive layer) are visible from the back of the film by light reflected from the back source; however these grains are hidden from the front. Meanwhile, elemental silver grains in the middle layer (e.g., the green sensitive layer) are hidden from the light reflected from the front or back; however, these grains are visible by any light transmitted through the three layers, as are those grains in the other two layers. Thus, by sensing, for each pixel location, light reflected from the front of the film, light reflected from the back of the film, and light transmitted through the film, three measurements can be acquired for each pixel. The three measured numbers for each pixel can then be solved for the three colors to arrive at color code values for each pixel. The color code values assigned to each pixel correspond to a particular location in the selected geometrical representation of the possible colors (i.e., in the selected “color space”). A variety of color spaces have been developed for representing colors, including the L*a*b* color space, and the RGB color space, for example, and transformations have been developed for converting between various color spaces.
Once the image data is captured, either by direct or indirect coding, the image data representing the image comprises pixel color code values, which may be manipulated, modified, displayed, printed, and/or stored. Signal processing operations are typically employed to modify or format the image data into a usable form. For example, to view the image on a monitor, the data is usually required to be in an RGB color code format. When making a transformation from the data capture format, or color space, to the desired output format for the specific output device, a conventional calorimetric transformation is often used to translate the data to a standard encoding space, or to standard calorimetric values.
During such transformations, additional modifications may also be made to the pixel color code values to deliberately alter the color or appearance of the output images from that which otherwise would have been produced using the original data. For example, spatial processing, such as sharpening or noise reduction, can be utilized to enhance the image quality. Moreover, color correction processes may be utilized in which correction coefficients are calibrated by scanning in a medium having known color patches and comparing the color difference between the captured code values and the known code values. Color correction equations, matrices, and/or look-up tables can then be established to carry out the color correction on images which are subsequently captured.
While many such image enhancement transformations are beneficial, a disadvantage of conventional transformations is that portions of the color space may be adversely affected by such transformations. In particular, it has been found that spatial processing often adversely affects pixels of particular color code values (pixels which have color code values which lie in particular locations of the color space) while enhancing others. Another disadvantage in some implementations is that color correction processing may adversely affect achromatic (neutral) pixels. Yet another disadvantage in some implementations is that color correction processes may adversely affect pixel code values which represent a color in one color space, but not pixel code values which represent the same color in another color space.